home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 23 / CU Amiga - Super CD-ROM 23 (June 1998).iso / CreatingGames / Utilities / Asm / AB3DIIsrc / source_4000 / SHADEPAL.s < prev    next >
Encoding:
Text File  |  1996-02-13  |  1003 b   |  87 lines

  1. INPUTS:
  2.  dc.l 0
  3.  dc.l 0
  4.  dc.l 0
  5.  dc.l 0
  6.  dc.l 0
  7.  
  8. START:
  9.  
  10.  lea INPUTS(pc),a0
  11.  
  12.  move.l (a0),a1
  13.  move.l 16(a0),a2
  14.  
  15.  move.w #0,d0
  16. PALOP:
  17.  move.w #0,d1
  18. ALOP:
  19.  move.w #32,d2
  20.  sub.w d1,d2
  21.  move.w #7,d3
  22.  move.l 12(a0),a6
  23.  move.l 8(a0),a5
  24.  move.l 4(a0),a4
  25.  move.w d0,d4
  26.  move.w d0,-(a7)
  27.  asl.w #5,d4
  28.  add.w d4,a6
  29.  add.w d4,a5
  30.  add.w d4,a4
  31. QLOP:
  32.  move.l (a4)+,d4
  33.  move.l (a5)+,d5
  34.  move.l (a6)+,d6
  35.  muls d2,d4
  36.  muls d2,d5
  37.  muls d2,d6
  38.  asr.l #5,d4
  39.  asr.l #5,d5
  40.  asr.l #5,d6
  41.  move.l #10000000,d7
  42.  movem.l d1/d2/d3/a1,-(a7)
  43.  
  44.  move.w #255,d0
  45. findbest:
  46.  
  47.  move.l (a1)+,d1
  48.  sub.l d4,d1
  49.  muls d1,d1
  50.  move.l (a1)+,d2
  51.  sub.l d5,d2
  52.  muls d2,d2
  53.  move.l (a1)+,d3
  54.  sub.l d6,d3
  55.  muls d3,d3
  56.  
  57.  add.l d3,d2
  58.  add.l d2,d1
  59.  
  60.  cmp.l d1,d7
  61.  blt.s .notnewbest
  62.  
  63.  move.l d1,d7
  64.  move.b d0,d1
  65.  swap d0
  66.  move.w d1,d0
  67.  swap d0
  68.  
  69. .notnewbest: 
  70.  dbra d0,findbest
  71.  
  72.  movem.l (a7)+,d1/d2/d3/a1
  73.  
  74.  swap d0
  75.  not.b d0
  76.  move.b d0,(a2)+
  77.  
  78.  dbra d3,QLOP
  79.  move.w (a7)+,d0
  80.  addq #1,d1
  81.  cmp.w #32,d1
  82.  blt ALOP
  83.  addq #1,d0
  84.  cmp.w #4,d0
  85.  blt PALOP
  86.  
  87.  rts